#include <Servo.h>

Servo myServo;  // 定义舵机对象

void setup() {
  myServo.attach(12);  // 将舵机对象连接到引脚 12
  Serial.begin(9600);  // 开启串口通信，波特率为 9600
  myServo.write(0);  // 将舵机初始位置设置为 0 度
}

void loop() {
  if (Serial.available() > 0) {  // 检查串口是否有数据可用
    int angle = Serial.parseInt();  // 从串口读取一个整数
    if (angle >= -180 && angle <= 180) {  // 检查输入的角度是否在有效范围内
      myServo.write(angle + 90);  // 舵机的角度范围是 0 到 180 度，所以将输入范围转换为 0 到 180
      Serial.print("Setting servo angle to: ");
      Serial.println(angle);  // 打印设置的角度
    } else {
      Serial.println("Invalid angle. Please enter an angle between -180 and 180.");  // 输入角度不在有效范围时输出错误信息
    }
    while (Serial.available() > 0) {  // 清除串口缓冲区
      Serial.read();
    }
    delay(100);  // 延迟一段时间，避免频繁读取
  }
}